python求矩阵的秩 |
您所在的位置:网站首页 › python矩阵的逆矩阵 不用numpy › python求矩阵的秩 |
讲解Python在线性代数中的应用,包括: 一、矩阵创建 先导入Numpy模块,在下文中均采用np代替numpy 1 import numpy as np 矩阵创建有两种方法,一是使用np.mat函数或者np.matrix函数,二是使用数组代替矩阵,实际上官方文档建议我们使用二维数组代替矩阵来进行矩阵运算;因为二维数组用得较多,而且基本可取代矩阵。 1 >>> a = np.mat([[1, 2, 3], [4, 5, 6]]) #使用mat函数创建一个2X3矩阵 2 >>>a3 matrix([[1, 2, 3],4 [4, 5, 6]])5 >>> b = np.matrix([[1, 2, 3], [4, 5, 6]])#np.mat和np.matrix等价 6 >>>b7 matrix([[1, 2, 3],8 [4, 5, 6]])9 >>> a.shape #使用shape属性可以获取矩阵的大小 10 (2, 3) 1 >>> c = np.array([[1, 2, 3], [4, 5, 6]]) #使用二维数组代替矩阵,常见的操作通用 2 >>> c#注意c是array类型,而a是matrix类型 3 array([[1, 2, 3],4 [4, 5, 6]]) 单位阵的创建 1 >>> I = np.eye(3)2 >>>I3 array([[ 1., 0., 0.],4 [ 0., 1., 0.],5 [ 0., 0., 1.]]) 矩阵元素的存取操作: 1 >>> a[0]#获取矩阵的某一行 2 matrix([[1, 2, 3]])3 >>> a[:, 0].reshape(-1, 1)#获取矩阵的某一列 4 matrix([[1],5 [4]])6 >>> a[0, 1]#获取矩阵某个元素 7 2 二、矩阵乘法和加法 矩阵类型,在满足乘法规则的条件下可以直接相乘 1 >>> A = np.mat([[1, 2, 3], [3, 4, 5], [6, 7, 8]])#使用mat函数 2 >>> B = np.mat([[5, 4, 2], [1, 7, 9], [0, 4, 5]])3 >>> A #注意A, B都是matrix类型,可以使用乘号,如果是array则不可以直接使用乘号 4 matrix([[1, 2, 3],5 [3, 4, 5],6 [6, 7, 8]])7 >>>B8 matrix([[5, 4, 2],9 [1, 7, 9],10 [0, 4, 5]])11 >>> A * B#学过线性代数的都知道:A * B != B * A 12 matrix([[ 7, 30, 35],13 [ 19, 60, 67],14 [ 37, 105, 115]])15 >>> B *A16 matrix([[ 29, 40, 51],17 [ 76, 93, 110],18 [ 42, 51, 60]]) 如果是使用数组代替矩阵进行运算则不可以直接使用乘号,应使用dot()函数。dot函数用于矩阵乘法,对于二维数组,它计算的是矩阵乘积,对于一维数组,它计算的是内积。 1 >>> C = np.array([[1, 2, 3], [3, 4, 5], [6, 7, 8]])2 >>> D = np.array([[5, 4, 2], [1, 7, 9], [0, 4, 5]])3 >>> C #C, D都是array类型,不能直接使用乘号,应该使用dot()函数 4 array([[1, 2, 3],5 [3, 4, 5],6 [6, 7, 8]])7 >>>D8 array([[5, 4, 2],9 [1, 7, 9],10 [0, 4, 5]])11 #>>> C * D, Error, 注意这不是矩阵乘法!!! 12 >>> np.dot(C, D)#正确的写法 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |